package comtgl.demo.utils;


import java.time.ZoneId;
import java.time.format.TextStyle;
import java.util.Locale;
import java.util.Set;
import java.util.TreeSet;

public class tzUtil {
    public static void main(String[] args) {
        // 获取所有可用的时区ID并排序
        Set<String> sortedZoneIds = new TreeSet<>(ZoneId.getAvailableZoneIds());

        // 打印带UTC偏移量的时区列表
        System.out.println("时区ID\t\t\t当前UTC偏移量");
        System.out.println("----------------------------------------");

        sortedZoneIds.forEach(zoneId -> {
            ZoneId zone = ZoneId.of(zoneId);
            // 获取当前时间的偏移量（可能受夏令时影响）
            String offset = zone.getRules()
                    .getOffset(java.time.Instant.now())
                    .getId();
            System.out.printf("%-30s%s%n", zoneId, offset);
            System.out.println(zone.getDisplayName(TextStyle.FULL, Locale.CHINA));
        });

        System.out.println("\n时区总数：" + sortedZoneIds.size());
    }
}